Enclosure airflow controller

ABSTRACT

A system and method for controlling airflow in a computer system enclosure are described herein. A computer system includes an enclosure and an airflow controller. The enclosure is configured to contain a plurality of compute nodes. The airflow controller configured to control a flow of air provided to each of the plurality of compute nodes. The airflow controller is configured to receive unsolicited requests for airflow from each of the plurality of compute nodes. The airflow controller is further configured to control airflow provided to a given compute node based on the unsolicited airflow requests received from a subset of the compute nodes, including the given node. The subset of the compute nodes is assigned to a same airflow zone by the airflow controller.

BACKGROUND

Integrated circuits and other electrical devices used in computersystems generate heat during operation. Such devices are rated foroperation over a specified temperature range. Operation outside of thespecified temperature range can result in reduced performance, damage,or failure. Computers utilize cooling systems to maintain internaltemperatures (i.e., the temperature of internal circuits) within a ratedoperating temperature range. Many computer cooling systems use fans tomove air into and/or out of the computer enclosure, and to provideairflow across computer components. Component temperatures can varythroughout a computer, and therefore fan induced airflows used tomaintain proper component operating temperatures can also vary acrossthe computer.

BRIEF DESCRIPTION OF THE DRAWINGS

For a detailed description of exemplary embodiments of the invention,reference will now be made to the accompanying drawings in which:

FIG. 1 shows a block diagram of a computer system including centralizedairflow control in accordance with various embodiments;

FIG. 2 shows a flow diagram for a method for computer system airflowcontrol in accordance with various embodiments;

FIG. 3 shows a flow diagram for a method for receiving an airflowrequest via a shared airflow request communication link in accordancewith various embodiments; and

FIG. 4 shows a flow diagram for a method for transferring an airflowrequest via the shared airflow request communication link in accordancewith various embodiments.

NOTATION AND NOMENCLATURE

Certain terms are used throughout the following description and claimsto refer to particular system components. As one skilled in the art willappreciate, computer companies may refer to a component by differentnames. This document does not intend to distinguish between componentsthat differ in name but not function. In the following discussion and inthe claims, the terms “including” and “comprising” are used in anopen-ended fashion, and thus should be interpreted to mean “including,but not limited to . . . . ” Also, the term “couple” or “couples” isintended to mean either an indirect, direct, optical or wirelesselectrical connection. Thus, if a first device couples to a seconddevice, that connection may be through a direct electrical connection,through an indirect electrical connection via other devices andconnections, through an optical electrical connection, or through awireless electrical connection. Further, the term “software” includesany executable code capable of running on a processor, regardless of themedia used to store the software. Thus, code stored in memory (e.g.,non-volatile memory), and sometimes referred to as “embedded firmware,”is included within the definition of software.

DETAILED DESCRIPTION

The following discussion is directed to various embodiments of theinvention. Although one or more of these embodiments may be preferred,the embodiments disclosed should not be interpreted, or otherwise used,as limiting the scope of the disclosure, including the claims. Inaddition, one skilled in the art will understand that the followingdescription has broad application, and the discussion of any embodimentis meant only to be exemplary of that embodiment, and not intended tointimate that the scope of the disclosure, including the claims, islimited to that embodiment.

Overheating of components is one cause of computer system failure.Overheating can cause intermittent temporary or permanent failures. Toreduce temperature related failures, computer systems utilize fansand/or other airflow control mechanisms to draw cool air through thecomputer system thereby replacing air heated by computer components withcooler air and providing a better temperature gradient for transfer ofheat from the components to the air. Embodiments of the presentdisclosure provide efficient and economical cooling of computer systemcomponents through a centralized airflow control system for an enclosure(e.g., a computer enclosure). Embodiments are configured to providecustomized airflow to compute nodes housed within the enclosure based onunsolicited airflow requests provided by the compute nodes.

FIG. 1 shows a block diagram of a computer system 100 includingcentralized airflow control in accordance with various embodiments. Thecomputer system 100 includes an enclosure 124. The enclosure 124 isconfigured to house a plurality of compute nodes 102, 104, 106, aplurality of fans, 110, 112, 114, and a centralized airflow/fancontroller 108. The enclosure 124 can also include or house othercomponents, such as power supplies, computer system peripherals (e.g.,storage, networking components, etc.) and the like.

The enclosure 124 can be a chassis configured to house one more computenodes 102, 104, 106 (e.g., blade computers, computer mainboards, etc.),and other computer related devices. In some embodiments, the enclosure124 allows compute nodes 102-106 to be installed and/or removed from theenclosure in accordance with the needs of the system 100 and/or a userof the system 100. Some embodiments of the enclosure 124 may be rackmountable (e.g., configured for installation is a 19 inch rack), andsome embodiments may be standalone (e.g., a desktop or tower computercase).

The fans 110, 112, 114 are disposed to provide cooling airflow to thecomponents of compute nodes 102-106 and other computer 100 componentshoused within the enclosure 124. In at least some embodiments, the fans110-114 are components of the enclosure 124 (i.e., built into theenclosure), while in some embodiments, the fans 110-114 can be installedin and/or removed from the enclosure 124 as an assembly. The fans110-114 may be disposed within the enclosure 124 and controlled toprovide one or more airflow zones within the enclosure. An airflow zonerefers to a distinct space within the enclosure in which the flow of airis provided by one of more fans selected and controlled by the fancontroller 108 to provide airflow to the space. In some embodimentsairflow zones may be defined by airflow obstructions and/or placement offans. The airflow provided within one airflow zone may differ from theairflow provided in a different airflow zone (e.g., the air velocity maydiffer). Multiple compute nodes 102-106 may reside within an airflowzone. For example, at least a portion of the compute nodes 102 and 104may be located in a first airflow zone. Moreover, a compute node mayreside in multiple airflow zones. For example, a portion of compute node102 may be located in the first airflow zone, and a different portion ofthe compute node 102 may be located in a second airflow zone. Thus,embodiments can provide airflow based on the cooling needs ofsub-portions of the compute nodes 102-106.

The fan controller 108 is coupled to the fans 110-114 and the computenodes 102-106. The fan controller 108 is configured to control theairflow provided to the compute nodes 102-106 via the fans 110-114 byindividually controlling the speed of each of the fans 110-114.Embodiments of the fan controller 108 include fan control circuitry 112,a processor 120, memory 144 for storage of fan control software 118, anda multiplexer 116. In at least some embodiments of the computer system100, the fan controller 108 is a component of the enclosure 124.

Each compute node 102-106, is configured to measure an operatingtemperature at one or more locations of the compute node, and to requesta particular amount of airflow be provided to the compute node. In somecompute nodes 102-106, airflow requests may be based on airflow versustemperature information stored in the compute node 102-106. In someembodiments, a compute node 102-106 can request airflow directed to aparticular portion of the compute node, and thus airflow provided via anairflow zone in which the portion of the compute node is located. Forexample, if the compute node 102 measures an internal temperature 20degrees above nominal at a first node location, and also measures anominal operating temperature at a second node location, then thecompute node 102 may request an increase in airflow in a first airflowzone calculated to reduce the temperature at the first location, andrequest no change in airflow in the airflow zone serving the secondlocation. In at least some embodiments, the compute nodes 102-106 candetect the enclosure 124 and determine based on the detection theairflow control capabilities of the enclosure 124. Thus, based ondetection of the enclosure 124, the compute nodes 102-106 provideunsolicited airflow requests to the fan controller 108.

The compute nodes 102-106 provide airflow requests to the fan controller108 via the communication links 128, 130, 132. Embodiments of the fancontroller 108 may be coupled to each compute node 102-106 by adifferent communication link. In some embodiments, the communicationlinks 128-132 are serial communication links and more specifically eachcommunication link 128-132 may be an Inter-IC (“I²C”) bus.

Each compute node 102-106 may also be coupled to the fan controller 108via a pair of grant and request signals provided for each compute node102-106. A compute node 102 provides the communication link requestsignal and receives the communication link grant signal. Individualgrant and request signals are collectively shown as signal group 126 inFIG. 1. The fan controller 108 uses the grant and request signals toarbitrate compute node access to the shared airflow requestcommunication link 134. When a compute node 102 requests an airflow, thenode 102 first asserts its communication link request signal. The fancontroller 108 detects the request signal assertion and asserts thegrant signal of the compute node 102 in response. The compute node 102detects the asserted grant signal and transfers its airflow request tothe fan controller 108.

Each of the communication links 128-132 is coupled to the multiplexer116 of the fan controller 108. The multiplexer 116 is coupled to theprocessor 120. The multiplexer 116 is configured to select one of thecommunication links 128-132, based on selection control signals 136provided by the processor 120. In some embodiments, the communicationlink request and grant signals mentioned above are coupled to theprocessor 120. When the processor 120 asserts the grant signal of aparticular compute node (e.g., the node 102) the processor 120 alsoconfigures the multiplexer 116, via multiplexer control signals 136, toselect communication link 128 to be connected to the processor 120 vialink 134. In some embodiments, the link 134 is an I²C bus.

The fan controller 108 may accumulate compute node 102-106 airflowrequests over a predetermined time interval. The airflow requestsreceived during the time interval may be categorized in accordance withthe airflow zones corresponding to the requested airflows. A fan speedfor each fan or fans providing airflow to an airflow zone can beselected based on the requested airflows. As shown in FIG. 1, the fancontroller 108 includes fan control circuitry 122 coupled to theprocessor 120. The processor 120 provides fan speed information to thefan control circuitry 122. The fan control circuitry provides a fancontrol signal 138, 140, 142 to each fan 110, 112, 114. Each fan controlsignal 138-142 controls the speed of the respective fan 110-114. In someembodiments, the fan control circuitry may include pulse widthmodulators that generate the fan control signals 138-142.

The processor 120 may be, for example, a general-purpose processor, amicro-controller, a digital signal processor, etc. The memory 144 iscoupled to the processor 120. The processor retrieves from the memory114 and executes instructions of the fan control software system 118 toprovide at least some of the various airflow control functions describedherein. The memory 144 (i.e., a computer readable medium) may be asemiconductor memory (e.g., random access memory (‘RAM”), read-onlymemory (“ROM”), FLASH memory, etc.), magnetic storage, optical storage,etc. The processor 120 may also use the memory 144 for data storage. Forexample, airflow requests received from the compute nodes 102-106 may bestored in the memory 144 for processing.

FIG. 2 shows a flow diagram for a method for computer system 100 airflowcontrol in accordance with various embodiments. Though depictedsequentially as a matter of convenience, at least some of the actionsshown can be performed in a different order and/or performed inparallel. Additionally, some embodiments may perform only some of theactions shown. At least some of the operations shown can be implementedas instructions provided in the fan control software 118 executed by theprocessor 120.

In block 202, the computer system 100 is operating and the fans 110-114are providing airflow to the compute nodes 102-106. The fan controller108 begins an airflow update determination by setting an airflow requestregister to a minimum airflow value. The airflow request register may bea storage location (e.g., a location in memory 144) where an updatedairflow value is determined. In some embodiments, the minimum airflowvalue may correspond to a minimum speed at which the fans are turned(e.g., 20% of maximum fan speed).

In block 204, the fan controller 108 receives unsolicited airflowrequests provided by the compute nodes 102-106. In some embodiments, acompute node 102 asserts a communication link request signal, responsiveto which the processor 120 asserts a corresponding communication linkgrant signal and configures the multiplexer 116. The compute node 102recognizes the assertion of the grant signal and transfers an airflowrequest to the fan controller 108.

In block 206, the processor 120 determines whether a received airflowrequest categorized for a particular airflow zone or fan 110-114 relatedto the particular airflow zone exceeds the value currently stored in thecorresponding airflow request register. If the received airflow value isgreater than the value stored in the corresponding airflow requestregister (indicating a request for greater airflow), then the processor120 writes the received airflow value into the airflow request registerin block 208. If the received airflow value is not greater than thevalue stored in the corresponding airflow request register then theairflow request register is not updated.

In block 210, the processor 120 determines whether airflow requests havebeen received from each compute node 102-104 for each airflow zone inwhich a compute node resides. If airflow requests have not been receivedfor each compute node 102-106 and corresponding airflow zones, then theprocessor 120 determines, in block 212, whether the airflow requestinterval has expired. The airflow request interval is a time intervalover which airflow update is performed. For example, in someembodiments, the fan controller 120 may update fan speeds once everyfive seconds, making the airflow request interval five seconds. If theprocessor 120 determines that the airflow request interval has notexpired, then reception of compute node 102-106 airflow requestscontinues at block 204. The processor 120 may also check for airflowrequest interval expiration at block 204 while waiting for airflowrequests.

If, in block 210, the processor 120 determines that airflow requestshave been received from each compute node 102-106 for each pertinentairflow zone, or if, in block 212, the airflow request interval isdetermined to have expired, operation continues in block 214. In block214, the processor 120 sets the speed of each of the fans 110-114 inaccordance with the corresponding airflow request register value. Theprocessor 120 may set the fan speed by transferring fan speed controlvalues to the fan control circuitry 122.

FIG. 3 shows a flow diagram for a method for receiving an airflowrequest via a shared airflow request communication link 134 inaccordance with various embodiments. Though depicted sequentially as amatter of convenience, at least some of the actions shown can beperformed in a different order and/or performed in parallel.Additionally, some embodiments may perform only some of the actionsshown. At least some of the operations shown can be implemented asinstructions provided in the fan control software 118 executed by theprocessor 120.

In block 302, the computer system 100 is operating and the fans 110-114are providing airflow to the compute nodes 102-106. The fan controller108 is receiving unsolicited airflow requests provided by the computenodes 102-106. The fan controller 108 sets a node count (NC) variable toan initial value (e.g., zero).

In block 304, the fan controller 108 determines whether a communicationlink grant signal is being asserted for a selected compute node 102-106(identified as the NODE SEL (NS) node). If a grant signal is beingasserted for the selected compute node, then, in block 306, the fancontroller 108 determines whether the selected compute node 102-106 isasserting a communication link request signal. If, in block 306, theselected compute node 102-106 is asserting a request signal, then theshared communication link is in use.

If, in block 306, the selected compute node 102-106 is not asserting arequest signal, then a previously initiated use of the sharedcommunication link 134 is complete, and the fan controller 108 negatesthe asserted grant signal in block 308.

In block 312, the fan controller 108 updates (e.g., increments) the nodecount and node select values (update node select selects a differentcompute node 102-106). In block 316, the fan controller 108 determineswhether the node count has reached a predetermined termination (e.g.,maximum) value. Those skilled in the art will understand that node countmay be set to a maximum value in block 302, decremented in block 312 andcompared to a minimum value in block 316 to achieve the desired control.If the node count is equal to the predetermined termination value, thenthe reception flow is complete. If, in block 316, the node count is notequal to the predetermined termination value, then operation continuesin block 310.

In block 310, the fan controller 108, determines whether the computenode corresponding to node select is asserting a communication linkrequest signal. If the node select compute node is asserting a requestsignal, then, in block 314, the fan controller 108 asserts the grantsignal corresponding to the node select compute node and configures themultiplexer to route the communication link associated with the computenode to the processor 120 via the shared communication link 134. Theselected compute node can then transfer an airflow request to the fancontroller 108.

If the fan controller 108 determines in block 310 that the compute nodecorresponding to node select is not asserting a communication linkrequest signal, then operations continue in block 312 where node selectand node count are incremented.

FIG. 4 shows a flow diagram for a method for transferring an airflowrequest via the shared airflow request communication link 134 inaccordance with various embodiments. Though depicted sequentially as amatter of convenience, at least some of the actions shown can beperformed in a different order and/or performed in parallel.Additionally, some embodiments may perform only some of the actionsshown. At least some of the operations shown can be implemented asinstructions provided in software stored on the compute nodes 102 andexecuted by a compute node 102-106 processor.

In block 402, the computer system 100 is operating and the fans 110-114are providing airflow to the compute nodes 102-106. A compute node(e.g., node 102) measures a temperature of a component of the computenode 102, and based on the temperature measurement generates an airflowrequest to provide to the fan controller 108. The compute node 102asserts a request signal to request access to the shared airflow requestcommunication link 134.

In block 404, the compute node 102 determines whether the fan controller108 has transferred control of the communication link to the computenode 102 by asserting a grant signal. If a grant signal has not beenasserted, then, in block 406, the compute node 102 determines whether atimer defining a maximum time during which the compute node 102 waitsfor assertion of a grant signal has expired. If the timer has not timedout (i.e., the time-out has not expired), then the compute node 102continues to monitor grant assertion in block 404. If the timer hastimed out (i.e., the time-out has expired), then the compute node 102negates the request signal in block 410.

If, in block 404, the compute node 102 determines that the fancontroller 108 has asserted a grant signal, thereby transferring controlof the communication link 134 to the compute node 102, then the computenode 102 transfers the airflow request to the fan controller 108 via thecommunication link 128/134 in block 408. When the airflow requesttransfer is complete, the compute node 102 negates the request signal inblock 410.

The above discussion is meant to be illustrative of the principles andvarious embodiments of the present invention. Numerous variations andmodifications will become apparent to those skilled in the art once theabove disclosure is fully appreciated. It is intended that the followingclaims be interpreted to embrace all such variations and modifications.

What is claimed is:
 1. A system, comprising: an enclosure configured tocontain a plurality of compute nodes; an airflow controller configuredto control a flow of air provided to each of the plurality of computenodes; wherein the airflow controller is configured to receiveunsolicited requests for airflow from each of the compute nodes; whereinthe airflow controller is configured to control airflow provided to agiven compute node based on the unsolicited airflow requests receivedfrom a subset of the compute nodes, including the given node, the subsetof the compute nodes being assigned to a same airflow zone by theairflow controller; and a shared communication link coupling theplurality of compute nodes to the airflow controller, wherein thecommunication link includes a communication link access request signalreceived by the airflow controller indicating a given compute node hasan airflow request, a communication link grant signal asserted by theairflow controller in response to the request signal, and a serial datalink configured to propagate the unsolicited airflow requests from theplurality of compute nodes to the airflow controller.
 2. The system ofclaim 1, wherein the enclosure comprises a plurality of fans configuredto provide airflow to the plurality of compute nodes, and the airflowcontroller is configured to individually control each of the pluralityfans based on the unsolicited airflow requests received from theplurality of compute nodes.
 3. The system of claim 1, wherein thecompute nodes are configured to detect the enclosure and responsive tothe detection provide airflow requests to the airflow controller.
 4. Thesystem of claim 1, wherein the airflow controller is configured toadjust the flow of air provided to each of the plurality of computenodes at a predetermined interval, the adjustment comprising providingthe given compute node with a maximum airflow requested by a computenode from amongst compute nodes forming the subset of the compute nodesincluding the given node.
 5. The system of claim 1, wherein each of thecompute nodes comprises a processor to measure temperature of acomponent of the compute node, and generate a request for airflow basedon the measured temperature.
 6. The system of claim 1, furthercomprising a plurality of serial data links, each of the plurality ofserial data links being assigned to one of the plurality of computenodes and wherein the communication link access request signal and thecommunication link grant signal form a pair of signals and wherein thesystem further comprises a plurality of the pairs, each of the pluralityof pairs being assigned to a specific one of the plurality of computenodes.
 7. A method, comprising: receiving unsolicited airflow requestsfrom each of a plurality of compute nodes installed in an enclosure;categorizing each airflow request in accordance with an intra-enclosureairflow zone in which the compute node providing the airflow request islocated; controlling a fan in the enclosure to provide an airflow to agiven compute node based on all of the airflow requests received duringa predetermined time interval from compute nodes located in an airflowzone including the given compute node.
 8. The method of claim 7, furthercomprising setting an airflow request register to a predeterminedminimum non-zero airflow value at the start of an airflow updateinterval.
 9. The method of claim 7, further comprising determiningairflow provided to the given compute node based only on requests forairflow greater than a current airflow value.
 10. The method of claim 7,further comprising determining an airflow to provide based on a maximumairflow request received from compute nodes within an airflow zonewithin a predetermined interval.
 11. The method of claim 7, furthercomprising: receiving, by an airflow controller in the enclosure, arequest for control of an airflow request communication link from agiven one of the plurality of compute nodes; granting, by the airflowcontroller, control of the communication link to the given compute node;and receiving, by the airflow controller an airflow request from thegiven compute node.
 12. An airflow controller, comprising: a processor;a software system that when executed configures the processor toindividually control an airflow provided to each of a plurality ofairflow zones within an enclosure comprising the airflow controller;wherein each airflow zone provides airflow to a plurality of computenodes, and the software system configures the processor to receiveunsolicited airflow requests from the plurality of compute nodes; serialairflow request links, each of the serial airflow request links beingassigned to one of the plurality of compute nodes, each of the serialairflow request links to propagate unsolicited airflow requests from theplurality compute nodes to the airflow controller; and pairs of grantand request signals, each pair assigned to one of the plurality ofcompute nodes, wherein the airflow controller selects a single serialairflow request link from the serial airflow request links based on arequest for link access to send an airflow requests received from agiven compute node.
 13. The airflow controller of claim 12, wherein thesoftware system configures the processor to control a plurality of fansdisposed within the enclosure, at least one of the plurality of fansproviding airflow to each airflow zone.
 14. The airflow controller ofclaim 12, wherein the software system configures the processor to selectan airflow for a given airflow zone based on a maximum airflow requestedby a compute node within the given airflow zone.
 15. The airflowcontroller of claim 12, further comprising an airflow request registerfor each airflow zone, wherein the software system configures theprocessor to periodically set a given airflow request register inaccordance with a minimum predetermined fan speed, to determine whetherreceived requests exceed the airflow specified by the current value ofthe given airflow request register and to overwrite the airflow requestregister responsive to a determination that a request for airflowexceeds the airflow specified by the current value of the given airflowrequest register.